#include<bits/stdc++.h>
using namespace std;

struct node {
	int x,y;
};
deque<node> q;

int n,m,ans=0;
int a[105][105];
bool t[105][105];
int dx[4]= {-1,1,0,0}, dy[4]= {0,0,-1,1};

void bfs(int sx,int sy) {
	node st;
	st.x = sx;
	st.y = sy;
	t[sx][sy] = 1;
	q.push_back(st);
	while(!q.empty()) {
		node v = q.front();
		for(int i=0; i<4; i++) {
			node nxt = v;
			nxt.x += dx[i];
			nxt.y += dy[i];
			if(a[nxt.x][nxt.y] == 0 || t[nxt.x][nxt.y] == 1) continue;
			t[nxt.x][nxt.y] = 1;
			q.push_back(nxt);
		}
		q.pop_front();
	}
}

int main() {
	scanf("%d%d",&n,&m);
	memset(a,0,sizeof(a));

	for(int i = 1; i <= n; i++) {
		for(int j=1; j<=m; j++) {
			scanf("%1d",&a[i][j]);
		}
	}

	for(int i = 1;i <= n;i++) {
		for(int j = 1;j <= m;j++) {
			if(t[i][j] == 0&&a[i][j] != 0) {
				bfs(i,j);
				ans++;
			}
		}
	}
	printf("%d",ans);
	return 0;
}

